﻿//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;

namespace ProjectBase.Core.Web
{
    /// <summary>
    ///     Contains references to all needed data for TreeView
    /// </summary>
    public interface ITreeViewModel : ICoreModel
    {
        /// <summary>
        ///     The root data source
        /// </summary>
        IEnumerable<ITVDataItem> DataSource { get; set; }

        /// <summary>
        ///     Data source for every Node
        /// </summary>
        ITVDataItem CurrentItem { get; set; }

        /// <summary>
        ///     Currently needed node.ID, provided by asynch call
        /// </summary>
        string NodeID { get; set; }

        /// <summary>
        ///     List of node IDs which should be checked by default - at first run.
        ///     Rememer that running values are restored from the FORM
        /// </summary>
        IList<string> CheckedNodes { get; set; }

        /// <summary>
        ///     List of node IDs which should be expanded by default - at first run.
        ///     Rememer that running values are restored from the FORM
        /// </summary>
        IList<string> ExpandedNodes { get; set; }

        string TvClientID { get; set; }
    }
}